package com.ctshk.rpc.visa.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.ctshk.common.model.BaseEntity;
import com.ctshk.common.model.IBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 签证订单
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-01-28
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_visa_order")
@ApiModel(value="VisaOrder对象", description="签证订单")
public class VisaOrder extends BaseEntity implements IBaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单号")
    private String orderNumber;

    @ApiModelProperty(value = "所属产品")
    private Long productId;

    @ApiModelProperty(value = "所属委托种类")
    private Long typeId;

    @ApiModelProperty(value = "办理类型ID")
    private Long visaTypeId;

    @ApiModelProperty(value = "办理类型名称")
    private String visaType;

    @ApiModelProperty(value = "数量")
    private Integer totalNum;

    @ApiModelProperty(value = "单价")
    private BigDecimal singlePrice;

    @ApiModelProperty(value = "总金额")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "办理日期")
    private LocalDateTime processingDate;

    @ApiModelProperty(value = "办理地点")
    private String processingPlace;

    @ApiModelProperty(value = "办理地点id")
    private String processingPlaceId;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机")
    private String contactMobile;

    @ApiModelProperty(value = "联系人手机区号")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "收款方式")
    private Integer payWay;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;

    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;

    @ApiModelProperty(value = "取消原因")
    private String cancelReason;

    @ApiModelProperty(value = "预订状态")
    private Integer bookingStatus;

    @ApiModelProperty(value = "订单来源")
    private Long source;

    @ApiModelProperty(value = "取件地点")
    private String takePlace;

    @ApiModelProperty(value = "取件ID")
    private Long takePlaceId;

    @ApiModelProperty(value = "取件日期")
    private LocalDateTime takeDate;
}
